<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="theme-color" content="#3367D6"/>
  <link rel="apple-touch-icon" href="/icons-192.png">
  <link rel="manifest" href="/manifest.json">
  
  <meta name="generator" content="Hexo 6.3.0">

  

  

  
    <meta name="author" content="QAQ">
  

  

  

  <title>java批量插入SQL工具 | QAQ</title>

  

  
    <link rel="shortcut icon" href="/blog/favicon.ico">
  

  <!--mathjax latex数学公式显示支持-->
  
  

  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@1.1.13/index.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/monokai.min.css">
  

  

  
<link rel="stylesheet" href="/blog/css/style.css">

</head>
<body>
  <div class="root-container">
    
<!-- header container -->
<header class="header-container post">
  
    <div class="post-image" style="background-image: url(https://qiniu.sukoshi.xyz/src/images/68686407_p0.jpg)"></div>
  

  <!-- navbar -->
<nav class="navbar">
  <div class="navbar-content">
    <!-- logo -->
    <div class="navbar-logo">
      <a href="/blog/">
        
          QAQ
        
      </a>
    </div>
    <!-- link -->
    <div class="navbar-link">
      <div class="navbar-btn">
        <div></div>
        <div></div>
        <div></div>
      </div>
      <ul class="navbar-list">
        
      </ul>
    </div>
  </div>
</nav>

  
  

  
  

  
  

  
  

  
  
    <div class="header-content">
      <div class="post-text layout-block">
        <div class="layout-margin">
          <h1 class="title-wrap">java批量插入SQL工具</h1>
          <h2 class="title-sub-wrap">
            <strong>QAQ</strong>
            <span>发布于</span>
            <time  class="article-date" datetime="2024-03-22T02:15:59.000Z" itemprop="datePublished">2024-03-22</time>
          </h2>
          
            <h2 class="last-time">
              <span>最后更新于</span>
              <time  class="article-updated" datetime="2024-04-09T01:08:52.201Z" itemprop="dateUpdated">2024-04-09</time>
            </h2>
          
          
          <ul class="wrap-list dark">
  
</ul>
          <ul class="wrap-list dark">
  
    <li><a href="/blog/tags/java/">🏷️ java</a></li>
  
</ul>
        </div>
      </div>
    </div>
  

  
  
  
</header>

    <!-- 文章 -->

<!-- 文章内容 -->
<div class="body-container">
  <article class="content-container layout-block post-container">
    <div class="article-info">
      
      
      
      
      <section class="article-entry markdown-body layout-margin content-padding--large soft-size--large soft-style--box">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉，这个密码看着不太对，请再试试。" data-whm="抱歉，这个文章不能被纠正，不过您还是能看看解密后的内容。">
  <script id="hbeData" type="hbeData" data-hmacdigest="a12387ddf60ce8e0a176014a2696f2e89ea1b28b9c9f58b2626dd3a11e66f28c">f5d7027a76d40f8b4fe5a79716a716fbecb20eb8f4d5001876237e810c3efb1e0eecf17413a78751174f7b3b4f4072310adaed90071c154bde8e83e142f25984d975dcc98a73ca8f5b983a5633c854edfa1ce1752f8f9aa1e1b1fdab1a6da3c45e947d4dff5d7ad98e0756ee9185191e1ed6d92b20701a29b1fbd95682bca5b4dfd44e1de1c36b5810f9345d078b1f3a0dfbb6c74e2bde468930075350c26047b8c1d3bbde7e8f1a2b19d86ec6fac483cf85edc9258d7fefdd1ffbe07b2b24c490bdfd46ec70593316a94bbcb9f707f12427465a940bef7034732f9e6b25d874e6c2540aeab827a34da11c5bde1ac6530730bc63a1d509b5315e347ef21aaefcb1e7b97ea4c314fa621e0f097226eba82d0714e18700a6fcfb3aab6fa3e8fd6f67d588384aba08d9481fd9f47826a79bdc4fdbcc406f09cbfccca03fe12f9d8d1eef64f7faf5d51b76420a620b5638807edbf55d545d964d020bb4a6d45de7d1420a1ed9b17a1f5a0b113ddd255c3deb0166b86e51e2047f50a6e2805d6764dd9e6dea5019f7f0a732cefefd2e587cd5f8806a203e0fac4d6e5b3f54dda068d39ec99397956e5f7898271c24ed3aab39b0b84d5917e96518afbacd7e2c5b2c3ade886d5e844f1a3e6a6f241c2a2e9cfe11453f8e5e153f02c2c30d61e223702a18c6d8bf8d7c7a673cb9adeb3281115e924db26e11a3e2c221f779c582802c0a8bc368d3ef1f7f71392fd93b7a7e50092ea474a4bb71606058fb90ccd2c87775edc0eeab8925069d68b75a47f54b269d92f32ecd30f15b28feb955f8f03eff958f1eeb6f68b7015435187a0b8f358665a0b5a330cc40b7f3dcac7beb1a1140f83b917a99ef0c0cc0f371b76568bef4ba6d38059ab291ab51e48bc6d32b597542a1c66d05d1dddf403662c517850b31dd5845f8af5137b9f0546671c40f2964047261e46e3fa4b0ed50696f81801651f845f7506ad0b5c2e83b35f74905628cfbfd2b1e82795febe44e5f234c04f1f7c2d8d2b0117f6d866512f84939ba0246c5759593f8f1c446cd85ed9d09f35389eab1ec6115fab317a8984099fd0d7a8b09c4aa12ed33452b1d214cab49760a5acb6613072c5476a7b9b4f40060c5805df35c5c0515503f0838e14f502a6e865d5388a27e6b7a6cba1e5a50f622a7c46e2d971442b5810b4dcb36ffc3a557f2b5e52f75a54ceeb31c4f95a154f269aedd4e9ecac538bc6f84eac49cb23a75a5fb61e063aef65afbb627a1eb885d3d4a58adb52c9d65443255aa5d0313d321851f1082e355a6cbfaf49da79229663f347c3e8fad0556e188411d6183e07b4c387a8cdb6403e3d7435da09fe04f5003e6531d714ca764a08f53af3fd1154a4f3f39c2a79e77158a4edf40174abdc38631087477d78ab2727c0a7ad7b5451467e0856f42fa18e923e0ea4efd88a0dc501b7403be226f8edaade4fb12cd35cc368bd6f932f647e2876fe24787fcb4b02f61170b644fb777dca61117d882ea09edf189b721ef45934a0e36b8feb2709f9db9e5ac6e816d68a5264fe2b635beead583ebd9a6026bdb218b45ac54d0a4de1888341107d81c3b929186affeffceb07dc3aec9e8d0ebe39ce37682855709c006b9b4c37cc8a31234c8ae678f21abc4e4d232631c38aab27d48feb70a1ed0cf7c0b4e5d1d14476b667f2651f25ef69266c9bf478c74b7b212a8fb50af29c6a682cc10884c3c4bb28f116078d08f64a014384003d92dfa2cb412f6013574c78acded40bf3057b295b16bbfcb4570ca423410094aaa3fe16feea04f1389bb9e0f945c320ec3a293090195d7e293e8f49a3f97c447bbddb7224cc6bec84ae5c220262637b5f8b489221450388b0c8e173464a9046603740078d8ba426df4a8a329763be7fa30fdcff78a30fc283e6ff4bb9f50e7788e7eefdf456476353138a1b5515f99535ba72a53a262a1cf23aee32978e80756e9f8973a844a22c2cdaae6401db0cadc57294d505cbe8c6fd417af292d8880e583d18befc8864e905018816fad561de5d2677c73bc5e899e2b2885e7efa9eb9fb5cb5aa3744a041554a8b962c3fb577b9fba17eb6f1f41f9c173bc4effb510be0a0d32748782076f51a6b0dee7bb3045418ebdc73c0b41a426f36c34d7904e86c4f64f1d9d566d7e8db4ef683a8962eb77018aa234e6dab700abb95d197838966af1934f157759117d18a8a2646ede0d11c4b51825ac0ec937b6e1e38b95f49a563155cb35079e613e5dda2bd80c46a2c1a527b53de00c05b215e5a99f262f3deb670e97c8cb47ac646923840305df9ade32b1bcd27f8b1c1ef9f1a57f76b8f28d0835dd6685064fe3861e0ffcd058a7b5344012f019c7ce7d6d89506d6f6305159c28661a6616c0eb285c78cb45ebc6d743c54fbf672e6a94f701539cea1796831560bfd04b987ee2486b8699873841282bb1d72e2801aa7198d03a1ebc28160f4fd780a6137ad752995b54f064e76ae266bcaef491cd91d0d799583dee3075b66ae56ef6eddf114f8032290dd031ac9ee19862f76997c38151e74d31ab48ae9d277be9226b228b3d43a57a84253a6b49cfd6ca8e817f435305e525aa9d05f644fef5fb8d7e4b5eb6bcd72f184db52da2089f698b5c6be983f705986e9a24ba859624bef95e5bd0fc4c13a5993b71c7882672078cfe06ce5a86378231feeb26bfa4495c8baa0aff1e879715be654ed82b1921b8b51522a8e2fcdd9cd5497e372ef4cfcc10b7506ccccb68bf847894cd98b8f38c3106501a55839f57c150f40f3c0a8bd12e85e7a9a3b515d34742dd08d00d1a9b8e62fb873739e20b5810afe3429993d38b18828825e4ca051cf9dee7cfc29ec24f10e48612443e32579c221457aae54677c1dcf87cb7a869a9bfdb3b07a1916062b703bb80939ea4f102d4d680bba0c0ef5be7cefde3c9319f273ee63698c969691903894634b0bc0c58812668c698935150a885a6ab9c51f95ad029b1a1c331aa358e9168f2ea5ab2e01136b9827baf17702884b4faf123b4bf7ee299a38032919a92ba4f0d25329d80a64c0df48ef092c7bcf67b8b4e8b97079e30bfe0ee4f3fc4896915f66f7e35c5c8a86239a09f8974171f52897d68969299023fa93c9b9154c6192f7887aeabf74f70c86be7c85eafcca4aafee66eca449a434453621bf7b4cf75a814ee3e3fe07ca7d0c7c7cca1e3947c6a383116e21980c0c3db58e7b9a0af06b5fab113265d85e7caf18ac7965fd1846ffcf606d40b48865ddb9846e64b7954a39e3b8595da4e2e7eb44a96a1006275ae27807979cfa33d77264f4fae302eee105210d8b301fd0fe5ae3598be049377a41003a385a7b781ae30fb61282c3d30d75c4e6b7116baf04e28cc23bad7fa754352cf92d93a1eee159be9865c5f2d0ba7a4fb6d8f62067389d4698c93399382302bf4b9ef37195faf87b15bf20ec823d385002defb3ca501204f4a631052f479c4022c6cd53e5614eb62119b21661836da3b09f0a75ba496116073ccc45890aee42130b53763cf352acc0be2a2ad0e2696f6ca9132f280cc5fde9b2c765c9ef3068d73a943101454404cd8dfc02ce61434f56c72a8767066970b7949541fe0bb426474f9e7a79f75df371ac58f7b8c3cbb21f40ff1bfffb997629d59acdd584deda3b41a3ef0bc91e968845c69ad6d2353273a454066a28ea8cb9eae93123d9b1b1e33a2a90c552f2f25b1b4e8152ddce8f128855c1b912070038fbbd578b69742a903efe9c0eefed6e3a0b7b0fb8bed840888e16aa548281f4005fdd495deda6811c806e772ee8e53f861c13140fee07ad2d26840eeeadf358d4fdbffb7964169d94068d12edfd204c3ffe8c906ffa1ca05a1800ba52768636c9361ffcac30cfd5fde518a32c64e3ed0dcb588469e5d3fb611185e782d914e72f267e30022370990d6b27bf21e932ff3fd5572ea44833975c7a3bca07d464d77e5d955058b699646ff29ec51013fcb7ffb70f4a2fe4fd611a3128cfb33bc95f05697e1e54a21a0b0b67c1e42fbaa163ed6d978248f5c60ff8a092ad9bac010daaf2397823d49044af7b1c2523a3f02d4cfe2032f5a440ab63d7704da15b079bd5c7afd71c781452759620bf3d124d6e789ff24eb07e2dc83246aaec67ec61c1f0c77f3e265ac4ca46254a67c5cf5332df4b07d8598fa4ea42c9f7e5625e8c7417a9da05193a579f4da0f7bbd36d91449913e1094868e37fb5651d54dc3cda6d1c284c95e93f99c5d681ca3636c0356fe45f33949b2b4d71147f137fe2cee9df5af372115a930c0d4cc1e405ade5b41b220e0cd3c09f3fd27af7d3abbaaed7f57b4f6f0f3e08a5872d2f7bae5873677049bcc842f795da643af7acf23b997c5ff0d2ff8ac84790a6dcee62ac8906514a955714020c8d618411e675cb06b00ac0ded58749dbd2ed5502ba87fc420157150463610a4b3040b03dd5c3b4d57bb3d77dd654b3898a1a6e03a4c3e6e5e0d54501e26363056054995ed8a3541ac239484a34313f6f474d69bed263bc5f427de4861d6c44bf9ca37904eb18271c723ca4f5828b202c16ce4f20d4ba314996fe45ac57273ba43469076089a4490871abc631a074b0f3f8648879ea42e20b5ea22f4ee1ce7603f97bb777389991021cd7244599777e18213e907c43b7c9098738a0fdaf89559f806cdeebd608886c6229a63e023d6064e601d4662ab28ef8c6618e5814f13f5d17080739bfa39fd0365bfac6e0329598cdc7aaf151f2fa3b576ec38603f8c4114bab834a03f925723c9d52a2f1a5d96a9056a5a8920aebf7b777e4cf8fe5dcefa1debb1ff5a94c7417e1e67d265670d89d98abea432da9be028662dbe07cfaa4ed567d94476a7cba984340e5444420a2a695dfcab83268b85ed51aca0bff59ce059553e01f9e1a51f7454c18ad032fe04ad31a1b8eb55b3492aab3825f7eb39b84f0459040d68030e2256406b0f759e4526fcf597b3ac7c35c0e37dd78f9fe9c01853d66b655b6622b45ec57eb29c5d8eb51766958692ec0473a30ae68718e70d81ff1de4e38a7454dd022caf8245433edba5ad0f401c48fb28f24edc5f7b106027253412fa4253429dab6f856dc7ea012e65f89b200119a566d9d7fab04accd93cc6a5d62e2e5d203a7058e7a50bdcc4c75146a3761e9a9a6c78366232086bcf4c25fb41724cbebef30fbbf2125ec9f9c5a5c230987ead2578fa7c3a0d4b1d000513471a9ee3fb9579702b2c5bb14f64c0c47fc5b81df6ac139ef4382cad8d89c6d2fcf855a3cba1c156d9b47abe9d14ce505ef2381b3d68376fe21c04571d705a277336ed0f8dd082675a20ca8865a2b70c32d142a1de6ecae796e31d568da9369748f45644d7371e5e472d89953bef6738af6e7e79102ce56884c4d2f590b1ffa3d695d84011e8888f5e056ebfcfe8a700f31b0725acdfd39e0a6d93a2a08245c7ee89b55d1b87b3e443826ac0e83124d3f8265fe257209d4707ece7fb5d7305231f6cd02d319eb3d3b661ca2b0f2c242420909a0f0e6443692ea4190bff5a1fdfe8ebb2abfdaec7641cd7504465fed58700506460d4ea0521a2a5a0b5ea9352856e71645147b18ecb1cf22b749cac5e76130d06e6b876a2e2fb2bb3f08f2f564650aa648327f9e98bf6cf21367c68125139f03eb03568cd784670e0ce3b42a4cdd1a3e003f26f3604a45bcdabb5b5df5e6e0aad3e4192768695dd89b216a5d34e264976184f349af3926ed80d324b0d587e7495391394815c3f93f2c9129af73eeb141699621c610292b59b551b95cfde6429af9ad0dba88fef32822e6ed9787bd547f2926dac9caf1b4e07d604166dba9b8174c2af4cb10f9cff463f048e098800da6d2db9ddc6ef2472b47e185d05bb84b10c5382243cc9bb53e4d403e224b1c0eb03a293cb50bc0d6d31a40c1b9739fdfc6c2215964a3952514c7fe764aafb21b86b1e1a87efecc28ac2c6eb458289bbe9b0fb968cc357f3c800222b9eb91822cd4367523d35edeccc051f07a9d1864d02a51325663f8715a8f30f8a014123a2ecf607fdc2f53f5cd9c9286362ccd64b942c132c646a19d342e074b99387659ade494e8e1ffd65e43be80d4fd855305ced327a8012ded0edc1b29e171501fa1ce27096fdef63641578cdc880578d4b5602eebbf6d9af24b6a558949614a3b00b19178a8141434d5d6946fe27911c33c092f7894a3684e0c33ad6278f6769050e4a7eb626af5a80322627b8deeeaa0b254ba0fdcc097912218c458a7643531056bf3fc91c6460ef81d262fa04603871608d263a0b1b35d18eb427cc725de9e6e4393d274d9ab7240e776df9048f8f94417c73a05e4bfc3cc7bc1991d0a529231a0cb955fec862f35e099d1eefbac8da656254056f7e642b35abe974ca933a73aa86cc02483d36e3e84efaca247a927de8cc440df95d83a235716ef7a830e0a9da11f5303cdb30b1f17a774726434a50f7493a083f158a08764187f4de793a7aaddff551a10ae84bd31568274e53fc75b1a75f41310e0e093882be79631d0db1a9d82d464467ad6517f641e6bfdac9c8ca1b083787f75e448a1dbd74426b2f2cbce95f3351e42390e74e0d7e3db11ff310697acd148c347b7a4f364798bd77d63e1d5164b61813b09bf574c5b40e71c2d6966ddaac66043d698385ec8f75a2f5d5882dd59b37a3a3252dd49c44af3fd7241bba1da148b6b73f6cb551204c16838e627fc8f949eb974c7739c7d6ffd62e6e80f73066cf3dfcdfd9a8c6b7013633ae122bb08c87309da91959826bc29ac7a4e7b74540a7822ce22affd2c9a1f734b3fb3d548966df72c78493658b867a8bc0027a5500e1e24f080af214a5f09af1608059c5eb909282267038a2f7e599b980b3508348b09cfb9d683b8352eaa725cf6acc9604baa7e8fcb07e2bf0bf0de571047648b5e6f1b8c401dd5b32244661ca1a72503dad89b8ee71b2ccd2e472ec148862b7cc593290a40c81b93eef28705b4663ec105628df44a961d04bd96fb7ffcd8c178e627cccfa046fb3763a245b6578cdef287edbf088cc48f17b2cda5b4218ab2f9c8ed51adce24087fa959ba3e917c2ae3809f357dbf0ddece45b1709430da868e0a396447f66f6057ab4ad5de9beb856ddaf1890a68f368b5cde1932d80c2263fe6de910b607f6d4ec9680939c1cd8ac8524bfde2dfaf729571e44bbffdc72a4128bef5feaa6eadbf6d291cfd0f8ad5ed7e3cd7f090e3e25e9d43d2a438e7f19dbfb08b3dbc51ab1e90f71d6372970bbc160f43d8f120e417d8f002d14cfa17dcc1a335b866aeaca6ff11556b70db7ef4fdee4ec24051c259a136b94e389d5be16099b7f0c9f66cd53b998388353f5067bdee51f2affc27a6234a94541d215b56936d2f6c3bb76c25786b37768fa9ef24671167ab7bb586b07d8d2bfb45eb1d5d92c14a40a3bee2d581d3948f4a0c0cb294eb778670dd12816d55e26471780ba88072be182d872430fed88dbaea4ab79bd35763ad59f2f8c85bbaf07247ace9450d11813223b343753658a553a8d92d7ca8edf558883dfb9b59388fdbe0ef903c44e8809e66d1aab4519f412cda447770f7dfd6e4bbb06bd20add922b940165d3f059bc7e1a5097c2a0a6c980fbf7e282d56513a4e67b07d81a7aa317c58e59c265a85fcd61566939e2c809608197f708b660285c6d5a830260f8d05220ca4d3fe42854b52a67f559638f20c8a333ea4f7be9f1b1af84c02160a164485c1d240d7641838b031629e862744033e996756c36f6fca8cd2fd33280529bd10a1db8af008f8a0cb6bf850954ac954f4b69f821c51fce54db9fbb68f29f920ec49f5cc3e03841752d099c91872bf63aa128a346cb75f5a7503dff57e04eb9225acf7ddfe392ad4c0c28bfdaac42d37c1057cb979d7245c5c8d497b2023228e8553914dc06fd8fc8cabe04c5d153b82e8cb5ee15924c2ee2483da6c1b544d735595bf40d10aa9e198fc545bfd0f2760e736a17d2e92d852a2a1b75b229f6226b8090624e86eb7a6c64bf2b7ef0928546b1be4db4187894f6b357d72cd1ad5c96828b60ec09161d723091afbb46fad83c407dd9a14477190c5304fc90037d0dabe16db0ba78be82f5c74b9017b35a8b2f029225343d9bb6da0b13755dc46316a38d330872a54fc80a2ec458be518a948f72c294e35b930dbca3bf04bfc440b9994cff4cd13963009c9cdd803cf50d2e06a4d8c79c9d4647b5dc443548ff9d39c67e70011ae67141de49b6d96bdc5b0c9e7422b8f012deb69136b3cbb747af404dea0b0b6cb5bc5052b8403f0bc0ad7c11176e6f84ebc53fb522ebd9ded174ea7f365d8905e47cc105169411902fc0e18e9df3c2ec35df14a333a481835cc1ca6cc1f526b217dd5210ba847503f9ce7138f49e2f49a2bfe00299cb120bd0e15bc762e29ce1b46cd688ce9cfaec0c680c7f43b134992fb7713bcaf206ba13d21dcab92cacf4d14572760d9266047e2b358fe3d7317eb5ab6f3db08c0da1291082aab8616592ff9c891de4a0423d5d513a6f8557be7f945a0a3c825acb97672b245266e270210e425462bae1a9fc2cb7d4396a157ef7ef58205e249e6f49fca1cc5b6bf82631f1d2e93e88f8fcb852c7d2f70550e4acb5b1eb785b7116910e9c2ade75f1891a343f4ccf8f496a777540149697ff160a4edf99d53b8941ed6c2e622c1c82f17fe7f07fcf81f6bb21897a22c2e3b3ed0e30fea9b3f842e3ad59d5d439880cc64b3691463b51a25aeb29a3ffa384d91f658abc33b2def3d8a52ac188a26793dbf3cb46e14acf67ace184558699f3291c60e7ab82ccd4b75afddcadcd298cdd361f30f6cad2baa9f76b56f40f9b860bf2312afc906225158e9eb9d0e90275ee2d5c81745a7ffe0d3f5f55642667478afc6666b75e62bb29cd34f0a316117c52c543ec0563be24cf31feb30b5757b9eb87afd280e3e5de72b586f9433c44c6dd9bf1fdf435e053b7981f0553905a67365a3e73aa2d2cdd769d1ff95009156e48e09f5ff6ba3f8e2c8c179f805cd1774a5cd0a56488453837fb8911802e3f24d45758397955214f2c73ebfdd4223151ade2cfecd37b6906e5925d27b2efbe25e74ec35cb52c679f75e29306f0a33b5a1c05a1a695b95ec62ed6249a120d0258d9d1ed2a8e6a7b2d62dafdd1e35988c7b871f2a1d9e3fc6cffc67c22dabe5b9bff4e790fb04c918782c09d1aa4bf0fc7272356e3277e4b932264c27c940dacd3e157a939e1f1dcd68eea05d40426f1fd696e85419cff807cdaa81bf521304e63ec29482062a47867b2dba504b15e5c3473270925cbd8b07502c603c7b4b1eb6a217fdd09cf54c2e8727eedb2b53c01b4250cfd38cc75379574bb062586b261eafc95decf0dc39332a7d93cc7ff4eb750b516abc3056a6109ea39a0b2f567c1dbac94c1b20f70bc90537cf10b9b633023e64fbb5c530e7a42d63d259a32ee756a7f8e1a8a29e5701c859793162b62927d7a66efe3c4f56ba3d9e8bc3065480df0ebd6953895c781f75f04f88a731e65476d516972022345cfada27843fd62ff197709856dee5edab2e2288c3272e50faa25958207255311b4432b7dfd10c8a8bd4e46a0e7dec443ae7a5a80c39f0e9969bbeb3b6e07db4360286ed94c873728bf30823a5f33956fac7d88b37eb2adb769e93161fb015c1904dc840e524ac1227d0ee1979533dc6b1e19800e8416a938cc3bc38a4f523a1681d42ed6ed93f8f260f9e4698257d633d40cf83eaa94e529b2137566396f8e62bb7acd0a7822ea5ddc94275801ebb0b517379d3d1e8e86dcb314008cc5dc975b2f0f1e6ff7ca750bbfabb018d707bf80005a0cdf0702f9dc4847f1d398bcff8c9de42521d3a242121d85b675804bbbb32cec2963ee49f3df8e67f171465e3e932454280d6bed5bffb29f4e4eb6d774fdf9b2d78c0551647518baf087982de6ff330254793cafbd1d8121dbcb591c31ff8c74a78ae68da9c37ba784691ef7b873b1adfd2642a360db0e5cae5f86ea062358d9510ed59272f6d6bf25ef37c004f91e85a425fdec8eb1beb9e90229433ef30bfb71994788a4d8c158ca6864cc042516bb3ab3fe4819d631a963b4441cd06786413c2a515799dc1f476b8f6ee4aeb9457da27d494c829f4f4472500e2264b2e28279dd43757cf6fb84767917cc469b00387807428e14279049f5f911393c04bf4ff2bbafa1f52c5dbc8d1332a13d04205d4864c5a70ef77ff410c0b8406556a668575965b09ecc136b6a1f8d2e1aa0a6b41d9b0882d0407787752093b59ad27efed8d8bdbbe4003d52aa2be7ce0efa0b945db10bced49c4675db22401af2b83674573f936b5704aba8311031e01f9af21d008157f7c0d299e6bb1ff4fbc8e535949422404ace918a5be4d7b294f24a126d2ddb39673cf2d5b76c14e26c22528070dd1281746fbcb0f2ee675eb6d22f5e7edac5cf9f65be2bf1e3408ff5ffbbe69f847ad8c3e365374c0eddd5c576b70006ff9a2ca9a70eba26468aca164e8e5857f3057d34f348b138b1113eb83e268f02c3aee9e97d678db7357124879d0e1a944e5882813c0247354e371af794e672148ad9b0981592b953ca73fe55b6eb082ca6fc28aa8cf5e5cd9016e317eacab9a610832f020f140e99da88d6e3a68c1ee7dd64c1d982a9acc4d8b843c46d863f600c9e0b7f6d0e847100a459c1139f6ae292da3b74f2d35687ebb753371895bdf3cf20dcb9102e2184089ebf6b729e8713283e64d44e951001f6054af6c7276a9a981706999e0054667a71ef1f391ec97b7823f8d785eb8d38bbb3517e34862a0485ce0bf9e0bdd74e32221a46a19ea5788fd09eb76fb8c019dea3c08702f11f1185d02fc931b95ffcf52b77e9196a02a4bb2d3a072b20643aa156282fb03bf5c14e27c11f46ca51d567c7992d54613c6b5371ddefc8b7b24f5a1d7e42b58e5c016e3537454693791df4c90adb4e70bc68c1830776e6c9a882557bcad131fb44c8e067c5a3ab0df97efe049d04519753c67e12356b582f532eaa654b710226a77d62ce209bfbb2187c41e3d4f75297fe2c9cfa2fa1759f5633beec81314f88ff5437c90752d0c15266f17f0571d73c2b78a6986a087afe80ba398310fd0146b1e6c3898afa1e83c452de6b4dda17419ceb3a7ef9db204c353eb290bd7d76fec6a153f766de911d60fecd174c9417fc94d0c14d3fd9a10d35b9a1ad33c214fca2a122dde37fa07848fa6231efca21e8374818cc8f656f586f3e5859f41bc1baba9361e72c4d9adfd5706d4fefaa387967c0dd898d8e1e569a2a3d7c6836b45be94d9e32b22fa8a21478e9b88154927405eda9e1969ead7d5ce4882ab924e589ef93e67161a4ac924680b019dd85659294eeabc1b0477f594d71618e9da62639c18b6094252b0327443c987d823556450e3806b75b92a3a0b8e42eaa5656e075fc073cd49f20725bfcbead0e069110db1501b011563e52a25c2be6e0c02f5ff7bd5077fa6fa82f346242fb0f896665e345d45d0550beac18e18f2a36ebae75c60084afc9170cff34a102e5ee65248231095dfbdb625a9d6b8923fbb592fc4b507f88f14030eebf9c78d465312e0c759b89a61b898743a2a15e204b455315267a95afbee9bf49a0278ec229c11d51e881b066854d1dba13ddf5a477692ab999494c67fa455062bce249f496f8ea455bb42482acbdbaf5519d48555de790cec85ac5bd9626b181e78db23ecdca800662c59e75e477ae5d56cb4273bc509920b2323fb43eaea37d253b94cae2f72e044df69ee2b1692fe82d488b3ffdeee4d131cf28375a4fece961b5290a855fe8bd4b02701ff1ec92400b671d53dce132dbb72d41648714c5535a56b3c526f6e0f0e7c0d327bf43b6a92b4146277d349a109801a4eaaca57d6dd9e319e13d0a171b8eecc7d2f0b85d878298dd6c4c2fae707d47a3fb3d72192e57d3c638cce9a3576587493e5df4b60f18418293762d060c65f4b133a86941e5664184995601a48b119158bf10cfd26cd0551e55f02e598ecdde191951a95c0921fa38471a49f5e9262871ac4daa776ae99db41b45f080714f25360d152e97720156d0cd36e1a365b8d98126dd75da2b596d9c4a13f3371c295ae4d3a88d04862f7c678fbd053bd5f535d4409a0b4ef1eede8611416a2cb2c4191118e3c5bdc945a223817f7da8427435bbe69fc88f76be098272059d76a24a3434e80531dccd1e0ddb0893f7845a6f2b66c0ce315a84df72a3f3594ed932a52de9e61dcddf947153f33bab95ff840cc38cd9e5fddfa44e2edd20262530392d42672a172f8cc7d77b21f9adf1942cca9ea073a567fb1a0f45f60c779f169d1a8f09c3874cfb5a38bf289b8f8ee4ee6fad6df249c850cf9d0ab2fc398a9286ed90a97804e1ed5a2b51fcbdce419c7696716c8a840916a62e19f99edf4aad0a90bf1c7e17e042024e56562d6ff0f6020766d0196a13adafd7fc820bcecb74a60ee2c248b0d1e3f3e41a4215f61e50c8a64d5711a921c3bd7884ba814c6c4d436f3fff5276248b94ac6260ff96a6073a106688ed7ac429dbec459e6c3915c4a076e5959e71479a282efce9891b20df5986a55300ba9bb19b591f1844275af871cd2c8379522f59cce72c4e67aba5c24fd7c513a59ad3f5a4ae387be839b5da3bfb229b5a0261421d6db33c6914e49ec6ca41cda4b843be6dbd607a6f9a87d5c777752adbd49bb9590550287d7117e084328468f5491ae66affb8641cadfd66c17d48974560873f26e3f72dc280e94a843681fa407ca4592541bc83e90643d6c64e2a2d8fd210f90459a8005c1515c5814ab91d3a8567e1b96e9f882b3f757784f89d409631974d295c8fdbe25c3348e8a5b6b66a3ef8e52cdcbffbbd2ed41daa6ee3579da2dfc7b2335e917cb0ec060def77a554e786ab9753e59e5bdd53558f92fb340759fe630c1a147f074ce84c7c1b899d2b5b0d37a305556b00b052a9bba079ec1f67c1df25d12e5819c25c070e99a4312d7e9d6f77af99965bd9318274de83176539a63b55a2b6f00113fb1bc058c19eee39b3d37c970fb01f3bf591922f2d2d3156dcf6d1018c2c99a649696fec81a1a86e78c349cd8b332743c35ce1857d97f7f94edfa3a468d756aade083d1767af21fdea4a427d33c6c74d89816e7527647aaf4db59e20239b7369343225ea09d0c2c32f5531a61c398351b4137fb9d7a741c6b474ef632736ffb599bcc906429c5d1dafcae808f8950077a82625ebd0daa18f40f2b96934f64b9e2f39978727aecf1797c43cd59e0cecb24e0fbb5c8a2a4dfbef0fcf86a9e1ea7654d8986be1a22977631700ac265a4b731f80349ec1ef13c20056abf607fce805d9a4aa34bd7e4199d72097e8dd252ec24db53e7643838f8f4071013219da5e668950c45ba413093ad7ef17841c497ea4c9baef1265c96490c0e0cc16057194d3c0af56670151d127642e631437af510a6b97a4c6d329eb5b812058bbc7027949f303949f38c4ccea6e2ea4dad98b5ee1560edca66e983d91fae6d6fa716cf4efc9ae11dab3b352990c3fd591607df6b3092982fde64010143aaeea3397cdffcf53c2366dd84d3d1a52d812166fff6e0be7142a025df5e42661961df8e9962c764c3d059624c54658512a263c66320a8901ddda8974c587e8219fa3e997d2b8d023599fd11b67dc2537184e6b9033e780ae4a63130fb9717dea3d48452a23fc66ad2bfb1a03a7a7fd2a47d1176d21742bc19c0488cf37a858309e29cf24c5324ac042155fc8f44ce14a004e7e70c309d1e3399bc51f2b20a8ca71e283500838062b6d8b0dfa009b0d69eae76b412c8040fcb376493a3e899e21fe73db74d6d91540305c828efaf346bd4fc730edaf8b02456808465bdd37f0870b71f8d6407a45d2a0193c0573d07e6ed06309ef0ec25ee47e2c59dbdf193717a90d2571e3251532e8d362df14c3f51d0321df0e1e26a08c493c43532708dc298ca70b2f0cb786059f05f476f6c4ef75c19f4a2668c9cf0163df8969f1996840787fa19ece4f4ef48c26278dad3525ceb8eaf4b86f34b4b5cb71a07d2d9a422ab1730d8f36245110d6205332a021c5adc470d675ec5e0ed518f5aec54414538a44ae0478e187e13449e1480d7b0340d3da048d6e9bf41b2302f22c5843d87bcc36c87c2a91c02611bfd0f95d0957eb1f072b334867772f8975e799a68324196171a6a23d9d7642c676bdaa25fe3f0efba21e8dcd46c2a644cec77e849220c8030ae9ba33106ede3a6585e20f559d960bcc6f5b70484d5437d1d79186151ef8f7a01735992cc44bf8ada2c14eb055e257245a66ea4b85c730a811f03c409cc3435cf10bc7c07a215950b3159fe9463f82b64361db3204b25b6a3e9f8c750386a79cca682f27bacf4b86ebf774f7f2a2206deb9585795a13dfc421ef0afbd06cdc964a1dd20094a756d3dce9fdbdc96ba8a3ed0236ae00feab7d1c7d1704882e4e7a06b233970f1dd2c8108759da6a38b3f786488a474889f923c0621127ce77cac578f33dc4bc6d5c71ef44d79d75ba25b4287f593db9469b8d89ebcc817221cd701fd5479f6a0dc17b5ec36fae6c1177706e71f6550b80b62af0c2373c18e44a23c17deb51c9b59c629dbdc5796023ae3af4f8d80ac4998b8994e5272cfaf2c8480fb00033b5436c146a35f38dd2131b8825f4d59b1eb932f1ff7c99df0966addf680a1d2081333d53416ea753fc8ddabe3b4b5889043a10000c115c94c57bb6a5d6b0040b9349b087c7c77dec7d556946c2f2f63531d94f8223ac4fa3445524689c633ef16413d2b5262c62a97e720e83b7c2a70549e4486c6c8dd000714df1768d7f6d9c498752f8f02b72fca39356e67d3afe1529b133518aca0ae4355a74f0c64ec737705275186dcb3b66d28983b7fbcd978b37530167ed5009e5a84343d236a1b4ec53e92c2b15328e2a161d47ef3a7e087456f8bfccced6ec5aab94550216aa55a2e9ce8f4ab0d517c1c390f8904ca1d309119f5e03c0966bed1886d367aee756e9401a7abdd83333661b765cbc4865cf6a2f2f89503457435c0c51ac2d4c1a3a54e18f1c7475f96fd2bc8f4ee0445a7fce5b178fa558c235f22512c2a235eadbd0ca64a201358c0d43b5ffb07b96863ec93e40bf746c4df947c356f0ec4b4940da76f3558578a8c7b6e672a8de512acddff86312a4d34d9292237307bc9f0e532852477c146b677e328b71c853fc76e975abd97b0030355bc17aa25d3cdee745bc9eafd5c9e3c774c9a4c7192f1cbb851a4b2406f558dbfdb158929e2aaed0c4762609b1e1f7c73db071d95cae2c52ded72262df209e5d94a30c6388b683d52f70ba593af5e3903758c208467769fbac7822938841323479e4c91bc68cd4f845c463f9af5e372ac5f8fa2714af59c07db060f4f8ace3ad86b078bd2ea230340d83e839ef970a14a831f0e085200cb0a4b11ea7f329395687bd6bb2e527715877c46288b8a5672389de99be10dc5e906b2f89dad51161de973b67a57abc28456217e15220bb3e8b3efc777eff0060c31692386df6ca762a6ec1ec47fb26eba75cdbb335f06e280332664e55202dfc3b72d22c4cf2f050c7931ab6f75a8c4d6cddb2e3aa661196632c7a61895deeb94b28a79cec5a025dff2552bd7a2b4ba4852eb34176bb1abe34078a4a996fe4492942b606b060c74130046fc5c800555a0da5a094c1cc83549635d8b125071f0a4043520a79191f149537d1f204f662765f49cbf171af3aea678f9025835a616df4d254d312c4d7c095a917c04e69fbd804877162a20b0877a66c5f54ca6fe653897c64a06a25498bf95422faa62a113528750f4d64ed66b6e4505271aa1eb0f380ae977ed74301ed2a9ec7fd0dc841af3df8f87a128c5054788a9487462bbd5adf68ff5749770c72a5562fb4e5d69ba75388d1fbccabc552b8fa36f5c091af4113b9684bf1f2d5e33ea89a967f79b7000e145e192256605d372ab2e7819197587bfc3e7299fadb8e136e3fcb252deb2e46fda5eab8e2ab75c22bca41a05343594ac58faa1a20844f9b3f4dbeedf21d7f9242921b68e916de4f1f5deefee00c1875be2c38db3bbcf31843b1b832d10872698439518479d474bd19b027158b35dee8dfb0faf066fa6f5934d024ddc5b1b2de93f0adc5361853f90a6d7cf1720dab7cf6796ae2eafd8d42c009add96f29214cc281533c40cfe012b28324338fa994aa6a65448394620cb0113de0c3e9e7177e3b7cd5db4474055269d3c7326442d31520acd30d5c9dfb8a57ddc75894632f13b995554bf6ed8d798cff83d68f2451fe396892312bba3bd3aa2ed0f1dca73b1c1a0b3fe3dd14c2d2a613719e9b1d20b563dbfb3a60422b319cb3da7e4d30dbd8aa3ab0e44a9c3bd0e61ef2dd7d0329b2c267b7e8b5c95b834e8abad917ca3781f6f1400c875b114f3695cb7fd89bf5e9a9302ae201aa66d45c55839c5e26c615da54df99e2c7fc56a17e5a397d95a4109b19680241e2238ba43299a0b3b7f3307e7c3edc823a5061faa790ef679a5cfef2d14f04406332291d3aa031015cf4cba5bd85f5bf4e18122b324bc620a5ca6cb332848df794d9b943294a097202cf6c421f347c5e8b4b9c6cb23562f7e44ce1ba7a1c438cb46dee1ba34c4d5015920b25a7bcb092eb4f0d7cc6cd8179435e3fa189e40605056b031ba30f75cc9ee496a44eed332f9e0e48a22d3fe112eb75c0c83f2d957f89bdc160440349b9b460749e59e901ca2c7e112195190aed95057a7793dd06035971c13563005efecb44e1fb323d1ea5d5052ddd24384e32b1af137ae6979d039a1279566de321d5b9227b807360b5e5c772de6ab66f616fa46c09031ef144e30f75e233754baeb4020e201ef27ca5e5946c9cdcd981b6fc7b411c6092972d5efb9546961b7b3c5d8f60dc09df5d1868622fa92144d39d4e02d1d8e23b8a810d3c7b249c568e84e32b5e60a529e39c87dba05e6fb1cd552884244bdbd9b64fc8302997d89b98dd41cc165dad7bf3f3cba45c52a6d96e5beadb5c89171e275577d576d6c04d7213433e58bbc1c84b076744d056661bb211de6be262ccba485656a262ef5780b7dfc0589efe9c8f6d0fd53eb6d652473b98170a92e7cef6157df11908076ecc9863a68d631420c142a30d013f2d1e1dcc94db8943bc93ac1ff3069a3c6ea7de34db87d79b6256bdff1e19c49d94b48d74218f48adfb4294fa8cb486ed292cea5a0294823bcfe59d5f3e839471b49a1d91448fec981353e0ba820ce2d93ae34c6373b9aa7a16e92ff8b9b5a1f5e902c8ee081b6b1b3176cd65408534d7efc6e88b898e1e1ea1928cab56729949dea931d561043457f1d202522d97d2be752ba0c60e6581a0698df3900be5066e34538512b7188f19ccf3abb16a0f40ae40560d6ef55447a5e57a7732c4690c77aa77321c64ecc1700a2be9eed141bb0b024e52d6e77fd4a1f12c9fe3f5e724c1a16d28e8cb25d8a4a544ec43fe7a4c3aa96b4f30658f297a89efa551969093007240f5a4b74e12e87feb9f512da296db5a2ee2cb869eadec8f56dae276169b253baaef7bf5fa5074a9dc595f79331a6104b2d5d59f53210251010502ca8c53829343f21fd52a079daea680eb7679f351a15487d025df872a5f07ff1e0fd0e990d1902c1b94f4538b8155e3ceb8d647453c84d3506527bee8bf39e47614073a00f50985bae06fa062ee371f748bfac9ea4aeb357c4453c3a84a5e185ef92137aadbb98b32325ac592c6c06c6f74331714861fe669d2018b28a0ec40573bc34b6c7ada09ef1f44cd5874ec24f4c64cb9c958ae3f6f212a262e2ca9c853980173713d418e4cc7fca65f66dcbf79e0d4bbf3e69e2da858be5cc309422f8c18ef8089c3f152cf270c05b22b0759fcc3a29150a9df06402c247de7108f0658320777099dd603bd9763a1986bef30f40061108dd3c34c2791bac9a838b76b2d7bb76cd7f1ac6a89bc7e706591244719a50d7e8954a7f47da10c4ead65d98739d7f8f7f92bb753ee0c796ddd0627db4a717389c0e13fb2ca9cbef49fd01de10fe86d11e70210af634060c9404c16de519d6c1e8878defbbcb3e2596ba484846b5e3faa3b18878648af947c77a07230dd3e7c82c76d861727ec61637b7a161204c8408b25841202930a77204c9de4d7b2a415c26b965343855c8fb6651e0e560fb1020038a528a94aeeb861001ba350738b87a410abfb3817a017dd989a021ae9c1bd031e9d5cc7afcad5e92ce56757d78ebdef15eb600f8da08c911976514d0ddc51040160f84b9084419718806b86e95d60985ba92b6fc45478f8a392ce1a438f3f65835a0e7518d73f00606471bbe3ce91eff0852b0cc901a10f91e57ac9a60300255e70d8cbf0f5f87fb247015454f3e135bc174bc0378aec1fed4cb2f154eb92c9bf515e9065ecd65ff2c6a273d86a8e06a16ec7be4d616cba3053f5d21791f80dc47be720e6e393dd690dec25c2ed03fb96b6a694973ccf054ad4a737d4cb0fcb21555f932972e6ff98ee9ce7795ab0259ca840eaf17e66380585d574c8069734960f624febc995a987bc8019ac3b86afda5a8ea8d9bde2965f364d954be3269df44ca00045559306b01ed0503b756470ee2c48ac67f0daa662a09226b6940d555d54bcb091befcf283a974adbb412ad5794b72a95de8406f8786538555b12a8528e56db5af7c51e12a80634a9557adf4f52a7c8eca75410ed3c5008a52ff53a9265d09bd0c712a85da2cfaf1b3be00c6656e0552a12dbd341653de83cb0b467a7d6197a03ef6c31a7c2834c9fc2f547298666a447e1953ca15818e7e40cd3be5cd7cfac897bf023de54869d464fe79ec4eec7f58526b1cd99e69f164c4fea2f701e747e46e17bd7f98188b253536a99bfb840a1136d8346b757aa3e7c246139160417d32225bb88a0037c757829b3b9a3c513589fa5609998986b0f10dfcb554807aae5c7295687259c0cf0aed9e241a1f84cc16227482a6771fceaf60476002ca010ac94d566e7c8619ef12ce31c26b0f62921ae75f9a320233307d7cf27a255001c827d217a90e43f7ba19efe4452af8db258011048a07f3d48439336a26ef86d4388369b51d6bc6c5052f07069d61c80cd1f009f079afcc28925b47076493c1f57d73fb05c44707ffd446be45e5e595b4fc82a446a38601abd04973fc17972f6974cdf2a2d80a4b2b516581db347bcdbb8f1508f129c5529919fea0a4182953c8debba5c6ab6331c6912b21c3c09be172a1283a70fdec97d9ca965110777dce98fb06509b786604f109a0dea59543d27ec04ef57a95507d6f4efbad98704f6c1cf3e06b211541d3018128d150620f2f21aa1fdb12f0ae94a63308b579385a5fcb7e583ac3e20ffc16405879c6e11c55d88977235c84d2d38772f8dde8fee31525c5e05767276e3ef79d2c14d7269688e2ed050d7bed447ec98a44ff59aa755e2223d667237cb78f9689e61ab5a8661baa1838c7f1aaa87176c7b11e3bad03562b403744acce4956175635a8a4daa7f886f9f58757ec0cf4dfeca29b03d65a2302ada5e17ebdcd00e4d05bd9fbe9a089e2b347ea4120ecb9cd0ca37c8a5ef5386ed8a0adda85e82736087a1b22ae7f277df4c261dce8dd2621214ea7ba67ce40257dcd2f7eff6f07771c97f4e0aa99189b7e5219e354bbd4ddee1abaecf3ff97096a0174a3f4cb6f3307059e4774967e2a9f93b61e0b3c79ba4fd3d8bc744d2462e302316cc44e8ffc354a09da07f725fb6c2b91fa90d43537e2916e3bdbc1a78a75e94bfe9258901ed1016df0d7c542391c2c3ed6d73438b659316121c06971ad78871925b422bd8cb00cb78a268b840d8240d3fe011249cc5751b9050e194c4fc1d23e3e42f0f525d5c0639cc6429d5ee114a5693e4aa76ab7f183a63eba89906d61f9f04fc3d15cbb146dd8741c2cefa26a7b2b8d7135cf424abfcf0bbbdc77533f2e006499ff1e89b77f56728db3cea06a304983dbbf42c3844fb2cf28243eb3df08575dc52dc97743804bb3d17fbcffec988a4203d2d27dfe83bdfa5254bf686a0e66a65bbe1e338f92d173b304589b871d38e26bd64b237c1889a8185548692967cf5b9d1580ce5557b0d665e8549f5da40e4a97e8ad0f90a4e71585f3f7bf1c2e464728648d5fbb512b655e90e87393cb6fecac6cec16caa4b7013a926b3b8af8b764a998f1b878550a972ac51ea97dd8d47f89d67bed7a3c2c31ce8b89bee965b0428580a98ce31c7ed5bd9539359f0fe67e11f2e0691a089378e6bbb3fe735725682659728f96e2223883a72cea3ca696e3d0c736e82bd75faff69cac4cebe684e195bd4d08f319c7481701f3fc5aaeae2e5c8a0230f4d3565e16028d9e2ac9aac52fa29f39338db7f83824b3545f782bead4d988ba9e7a2a71797ca64228668027d19bb7f09c1cab6c85e778f62d72598398c04f0a69b8f30883876610219304678038a5e186a8275e60d3ff670649ae660b14cbb09a2b36231c7ea68819f99d31bb5743eb494835e35405e08b087afc8624e148357c1dc575a722f2ca9815aaf3240eb4448af061ff5bf6185ae86f104b3403dd6ed4875e9940d4250942580cfd4f3f77bb23d081bfa3cf63bd7fe05c5828e4686ce2e35bc9a164c4447cf9817d6de6721aeecac90eb96a72a08fa87f188913b7ad433cc12e1feff31da104c9d166617b0106b76a0404b5fcc086f72949128a9e290aff1ce334387d6fc4db74fc9bea6e6fb4bbc1756bac2e4e309eefecdb9f4dabc20a858a506e2aa8544fd7a70c4d630b1a7b30c273ab027dbf46680c97887143c375dd7e4c2f825cebc60951b895a715f393e6afb2e40ce99c0d5b2fe1307c31ba8072eced99d4a05f1b15926426ae2f3fab6f042e7f22f5e5eadb8f45ee914a340119807a49ed4d4ddfb5d21149a3b105d208687734dbbcdd641b1c7dd445685ba80352a9146e249f460aa412c77d1dd163d90f332cbb52d11e37b56c6ef7d5ccb6f815209a4e50d3e3baaeef98e22d1aa8d8a3d53a00277326803e130c58ff656fcb187c6836c16abcae85ff96ac2455a317a73786bc7800840181d9244a9745614c426c29c487a6f6fc8ce1523dda9cddabefc81743c15c862f6f54a78830191c61ce3b982655b7384ea24bd0afbdabcacceb78133881d1ff14d6d93e5d7183b930b2f994c850cc9e4b128d4fd64ea2f7e9c1c6e4ec5bc600b9cab5eb954e83029a5986e33b29adc7b139af3205d6a5310204cd88940af6f38fa5033c181eedf64f51ab4db1815740bd6fac62cf28ef54861073116c10a9f277689af7b5293f14520c15ac7aed08e8dc7a9ed22e9a9ef08c3befc6e2ca6b7fbd4dd9b12a64ce66406d128de259f7605a295d4c772862e40545acfba0a81336dafda270762abe12369831cdd8c11fbfdc2c0ebe4f48b590254a9da12e68b151dbfa7dc901cc911152cf09d8db31db2c82cd3e20aa32a7cf54f2b7a8f265a3196678332522c7eaf50333239016f1c90e1bdc50c1bf3ae540eb6371e8ecb68de25de9b661bf2389069823af1f79c74ca6f1964ee631c8a1344fa580d34bd8fef60a3d1c0cda0817cc2a2b9c59c7802e95bf51f8c885759aa3da52cc5f195e49d39ad1a8d961014668b66228c44ce6303154de31af43ba9a1656f6298f157065bf72bf30488f16e20daeed2b7bb87b7e98d737cd3cf4f5ab72b1fd2b05068c4ed2b37e5885715c9dc3371c03b32244fc1c75849bfe119842e64076bc42294046300e12c2fe4ef68ea367b52ca11ceebdd8f7040686c4a63efe2079ba0ac2e9d35d5e8bdc5e85cb301e95176aa44520ff852dbdd9954d54f9b8e4b8237cdf4f5167995ab8986d955d9c0de25eac951aff0493e9c7a02baa45ef2791fc3ada469902c88fde4a49185ef2c65b549627996b4495b9d5e19990af5b1f410a72cfbb0dae706964e9333a409689c210edccfe7448252800af5d1c7a21d6e603866c3695cea7c223cc2c08fcefff055a99a8b4a15e361cd2577797139e1d6c804d7fc1601f0855ffd6e750521e83c2adb541edd49747fc67dea8aafb048e4beda34aff99c367b996005c6ed56a185f0a9f3fd563e8988a0cd8a1938b56d127d27342f8fc1d0d0ac4c2acf4f7be648c792410d68c8c228db030fbfa9772d0065ee94fd38c725b2dd4af21fffb9395f9a7d844e9e0e589755e5a77067024d8cb0549b3ec7ec52fa26ad5105a6957b2d268ab087a7d8f44a1299d43037b4b10391628c955305250d00a113f99a8477119ac1bc10c52e76a13ed2be2e8fc360ed945c49570e4d40e3dd1196062e6b3cbf81c972ca7e3b28372ad042769cc24d9cb25005f9355772de41b249974fc26b439fd962e8d387178cd82112ba94f31b1a3a344c21e12f28f5b726e61d792adb58a3bcfc66e082aec9a677a00b916fe79ca34a35f62b74e92009c9d7da1df9edd2fa9ceeb725fa0e20f0619f986a5654637d82f64c4a6d192e04520d4042090d6bbcbe8f38baf48eebd3a04da5e29ef777494238cfd3006985f4772e7516a562ffdea132ab683f7a616de1541171e2fd708a9accb058e6e45eb0dd4f5c45932b4b6246417bb420bbb8ca3bd7d5d51bc3fdb37f2515ea529bff46fbee9908848baaf0f25b75e96519f5e8987d6aa829c86ee0c6b99ef3d54c75f1e2ec59f6957eaf5fdf85a86e1a9c43fd5a6cd6a2465615602914948bace64808692463bbcc66612ee28c180869fca1d3cb92dde37b5f2f4d5c2775a2e159ed638a99fd1e9767d2b7b04d744c8ddd42d8122dace8bf399db6e62e1d9d9da35275288cd7ed6162964ed02807d4314b75e23bab6360c2a691024dbbe1b381fc228abb425bdab8142c2fa2a2bf214a5989e7f01042128f2e851ed26d1f39960de9c72b737d8948aeda38e349c5bc9619108d63e7b6ac5f6d4cfbb90d3a6e8cf6b40b9814fe9c7bc35de183b18cb49668b431280e23eed4ef984fdc0041c91dccb3150750b6794caf9b3b4492b7cf3795271235c804187676e246551e876e85d2dd12e112b253a42b0624dfa164caab9fe6245fa4f4be2fea558ebea7b743335c5ed12c38b09715e904b82716d21d4ba58b711bc7da6ead804957e24caaa35b84a159d7a370ba135c8a45970bfee52143c8f4549df647b965c6ec4349d2440bb06f635018b5f19ac7f0cefa0e7a01100354d02adf90ff9af691492a9106854aed8bb72f7fa5915f0e7c6a2c484eec4810c730f2eb2cc6a6da68734dcac372cce9f026496932a12c8fe68eae3a53543e8cee3ce7a2b3fc26533bc01b6c9e68928224b9a426811019c0c11c37435b666d315001af021e84350b3f1fd918328906f2dcbc5a73b006bc3f2310e69141a215845f3030e31621e7ef38f5b7d027a9bbf185cbf0ff0132a2a2c4e69c632ab6f555261138602fa75dfadcf0bfc7a600ba5baec826911cf1ac80a2ebee2c67f7cbb87baa37348dfb6dc8b099bea985a2dd35ae68e93f768fcb09bbdbc9fa27da3a34ac1fb3463ad1f6f205b37e8cc5864fd0c641daca363a4fa95ee21be158ef16155501b033b017bb256e24a107fb1433ae81c12c9c1efcbff3a8f6cbcff0bd18692250b731d90318773add9c7759d57374991dc23321c71953a26cffc9e2da3d01a994f7ad47f94ed2f930d422f1f2d9eaf5f0edc772bc4e3e21113f10b5904648035aa0c945fd3da2cf090898f4dff927c4dad47717b916ac0d684bbdfe1286fc98161f392ef069e29c224fae8861f6b5e52dfe0274948b4bf35a849cddebbd9755290b5b760dbebd9db28b4940e5b75aade2f07da7f01831aecb5536b5ad18d4091bcbf7ed27f788b30b6dc79b60da2e7b3488b9ae7d448d37e2b11f15824aac8c7ae8b92fede9b9644f8570d73a771e9a675a52ba0b9c1cc1beb132cece48c2531e98de3c26e05b07ae530f14fe571aa027c49b6368043fb13fb9d4ac58538e63c229857c405faf0fc1afe7b5cb6fe6ddd4ac4245970c5c54553c59a8338d0dd68704de0f0433934cedbdc6a1251675ad628fa321982611138cda1a01a4a594aa5271849eaa1ea0da0c38e9cd2d3a8ab5bbe961e2b7575e1a24f51f0df59d7e5bda9a05c9320c55d858a1bfc944e648fb14272ccad34be0b7df7805369f15870bb2175cea88fd08a0fec43ba2e754274dae6445d99a2cf5ec708bd020c0760fe5ffd3e3fd0f43e81496addc2d1d666fd83a98f8d8636af799cb31995887c90ee6cdc73d4e288db629e00bb8ccd1b9d343fdb08ad0b930e663814c236960f6e2d836c8393f15e1cf3831e5618cd616d13fab2c92a2b8b5812f95a1ccc432e0267c8ba54f1411a16b1f0e9ff6b0922d57641bd526f80c01b89e5993d0682c6db06ca2da41c053c4116f8e6fa02e0aeae064e3f6519a85a95c38d6f5f801d5d2660f78ced2c3dc3eccc71bbced1358000bd602c6dd6621860595df7c30d8851e62a9262653ee3ca9b18f5fe4eb6f631e9017046b83de988c2705424f81fba5efb6fa3bf7d50bf53e6663310439b70c2f7a9184b2514cd0298c80360ba2622e7fadd43b0db7487870fb55595ede6b0c2fe3c484ac736b57d14e0c9bf12d6df08bddca582089f1b4de2b102a22e23e2f8dff44a8c57b867aeba14971d947ee442760f4b69e6ab9f435c093e4bd72474c6102a320ac6b9bb22f3f2ad1e5c948aa8be26635a0138f05cdda5192cc8d094bdc573414507c34b90b347c7c7d6dfcc63640e1833c41dafd8b83f3ff305d9998cb8b9c596dba7e83131cb4b7b78054bad9e119aa3d61a3f0acb59acf3346e14ac6cd4a6d4947ce29fc5575ccd563428841ef361d371b218f43b1ec0c3b88215179a373468a09d3ac613925da379fb389be0d4262b9f316af8b48fea9b2694cb6e9028c97709773f8199f55d7d60ea9e36c8c157b01857f8c61823811751e00f344a76fe5489971188054b6d5947e86789719e0d1fd1357c4c2056bcf1fad50116cce7b42cdac33ea56e864168fa812b7b5d96c5aa70b21db420f5bb1101d3c6f988b3d1a8c2a4bc62f2ecf3364802f8df8934b2b4174cf2e8b21486de0f1a03ed7475d85d590872c0b9a53f4776fdba6dd71ad7bd6ec20d1309cc28eac8e67682b081ca1d881bfe7a2b86f46e1cc5f709af4c6786485914dbee3f2aa9fbab1e03f4b9bae047681417e319e3c626f4a0fad1d3a9b4d8feaa81aef567ae91a85af79025cf11e6a18e2087e07357ee003115dd04a7dbc9c07b70cfca008dd356c448c26aef80ce12ca5a8bf65a9d4498fd97aa36714058a7577cb424642f47a3d23cb0f1043975ae3c55ceb1f566a4d4bda15a2e3e72dad236e8787c4eda83762656f653c5fac183228532215cd2251e71303a0b0597678ff99a9f7c7a69e978f3c111134c973f17101a680a8578131ed0a2802e2524c7d5f0e94c905155c875436ade4f496a10263e64b294555e579dd605d230a69b31e3e24f9644c5a4ecee87ec570daea162cc365719a7750544ddc24a85417e9b3bfd80e7955936aafbde3fcfb490cab52cf2c30ea5d93a8ecd2539671cfe51f6cb9151f9e0a983b72edfe9bf4d711a2530cb6b42e405262e17d7f912eac9ae09c9e77c79baadd91d0927208dbd9026c31752636cb2ec22e4462cff3ac03ebfbc8fbfd8b128a619a69214bf8b6a30afd10bc0ac5b9b32ed4f8dac2a3da41055d79321dae9c7a428fbf783f5db478192a1383d5de82f844e1f790d629951827c4c239e8662dae07ba9e6f9c7a8fc1d680e45bc423c1d874c1f6f2b7d15b66ca087de184b0979f5966cbee79d4c70ed2ddf7e1788c0797065fd4a2cf7e81db13d77e1eefbd313d0f59a4279d7f6d066a48b6d2dc0d4239208db3d920f5c05e340ce5c46f7b8a24b5f73d31509cc00465323bb16a52f8bbe62304d09cb8c20d7b49b9bde8396900545b182017933c60eda8e1647651088b34351bfe5b3a4f3a56a11c50be8cf2ed17890dcf2802f4ed7a264fc740730abd5715c2ea7af66fef6492d44a2152f39232067f8fc73c7665f1b2b5efc2b59b63cfa807119284670b78e209a6d3dde008dee288083242e27a5ca1d121ac86dc554715d2a9416152b73789733a7ccf4a6ad38aa39f5e5593bd0baa4e07cb3f913bb33ad1cc24cead1dc0331996a96b3664267919e3c819484cfcd47ba62ebf10513080e8079c1f750a2e7d622db4d77f6296ae493c5fb0b62419740d1469111f7d49491ffa0e35d3b9d894be0af9804029d7fd5ef559e2a7fb79c0fb5d33afed90ed0b8de2998f43826d9cdc75215d0deadf23279eefaacb8c2f741643b51061ef231d49fbbb704938813c7b77a11d8e19750dcdf4c391fd3254e33dbf4af6832f9bcb62fe9b1f02c59e6cf972ea1df6aeaa615c83eddf0d732dc879fb341bbedc67b2004b697ea96e5c41c1b48cc02183f7637e31a0f99737bdde5c1f5694dd8e442d916f5ef78e304d1d37bd67e1b86ffe264d0fdc80917de96f937938a9871b203f40dc2adf7e8818c54e93832d94a21b62308a2c654b1ec3e31553e3b8dbbc54a2984b2236e58f2215abac6d42a867075537f3359c36b4d90a19d3fb51fafad15fb2fbec91bce3f0fca34f06900ba4e52cbd0929b6bcf80fb4df92dd53546324e7d0cba073fdd9e4841dc6cba95eb5547ecbcbd66243bded79ab04fd5c0e77880ef47cffe3c8e000a2423f5b2f76a030ad260f26dbf7627522231a06323c20c138e4a9874b80e0e66589c8b786a4ae7a6ee9f4d6893778710f699ec22159d505c87a2ab76554711a6ea8091ae2d23c3f8ce7bc7b90857ed2998365d7e609a4401e682251cb87c6ee98ffcf246c4adcbf871cf356594b877bf6fda2d4ac54a012fc84028207b3273b726bbf25505c4fe9570a21f204d72617f11534d332a5070951bb89e2ad0e8edaf32b792b3163397ae99fb6c55e12d6cfe01235215b73b48ffc0e1fc7c5e765048e08f62a8d4ed78cd116ce5ea460919d57d3426682c954687add1a0a0b8436cefb361788b1b3bb16c0cadcb7a58a6e45722ed3ddc6e8f664acadd7d32f8d458e496cd62864d5a2db7279be72e6015eb709c772cb915fc7768d67d25eed7d59734f5740dd1b6e8f7e62f85e1f6c1e488339434093c87b3c87dc4c03fe07a4d0bf40d8a8a174c7869672ab991fc93aa0571212614a2d60364b8fec06eac1c87417a4a3ace0a94c338417449c72bce2a1127db666a89334955071fb4e1ddbc5f15c0a9a7a7508e996b40ee961dc2ea3f216c9dd474c76b5001b9800c783a3cb931996e42ae7229248ce167151e68af4076868592a79821dbcd5d85307cbf360de8017bf34709c85c95260dadd4a332002f2be575c8b41544124c36db41ac94d7e6c3a4403a958c7ac4456a91b2a2625c05640c4ad03bd3ada248f3cbcbae50d5b3673d5de8bf51218f5577cc49b5756acd761b835e17559ffceafa30148dba7d22e12853611e9dc8f5b6e527a9d5c610c7e6aca8673a24538ce251c946b60dd3e476d27216c717176adb0e5cd322107ad7a36fda76d7f95d08590dfbf0f8edd37af900db50c34725fe80d64319f540aa8017cc993d22ab8bd9ecb24be7169f9d947f148b692fba9f28370ec0f1c72b2d737d690122998043f37f077679be0ee274cd33a3f5f373d831db99ca6aac5c3c41345504628d318952b67d15f929f21209af2bfb2a404f2d0c08df2dc30bb8ef89d4afefd772a1478e673ceba254975a0c9658138a80e4dd57d4fea3497e25b0cb90033f3c7d8bec9d004505e7435154b96c2ddea9b5dfc633a066ae802d196a00647a40bfe28792888f070001251d2dd4973ebb793dd67c097a69edd764425847c275d55916f3cdadece55337b6e964223807f9101dc262b8de970819523c70ebc8d4cbb46e1519cc154d901e44551a00f2f8e02a3f9ce295adef63e7ca8d556c52c613a76e668a8bbc50d901b1be03691e11b9135f70e01d1e221919f9ca84dfd9f54e5f0621d2b73ff3910922d8c6b6eb632c1a6cdedc04cede0c172f78439f3a86a3140b40ae6d4166fc94eabaefe0ff2a743abe92cdc262ac5246180d8728a7e4d3caf813b33ec50f0feb0aabe71564b90dc1d489bb4c2eb224cc13c6e7d37c2da740835ecf0eb254e633643be5e21cf411243d7ae445512d279119c5112430fed5ab0273b80f5fa7d5318a52ab732d2ba723af25b86f77cb261dd3f7b51f7f67734839e4c52ab666514c2adb66fda78e7c737806ec940867d2e7fa73e5ba6c1f9c312077aad471e88f3a6a596a08f412f8c85c287f43ce1ca1f019673912f6dcd757902e078a75e7577d614e26ea280c2f0bee3515d02380e8ec88c9391250a67b9748e21513525ab92df32be0a7f2f2da86de1c7df08810d8838fc013d733f1fc66b0c6dc3098a29f62610218a8e690d0373ad385b6f6d003dfb90dca3c762f44aa83d500f36f1a0efa0888612866f737e6e1ec2b46500ac8517f64a0d15a6350e6e1283a3a90d184737a33749a68827b21cdb21c3e45a2ba5658af12bb32365dbb66af55e7614bc3bb0dc7e013360463fdd5b39a697390104a24c5f36166f752e26de7a2875ec982c660aa32d908edb500c3b37df69c23b2e18a94fe3a7ca3ce4162f309f529e7b6b6770376f39f300d686066c44e46bc70d83d67e0c66f97d63513603b46c10a813d68d9062ba1db3609db02029221e5e8f0c3e944c960da14953edd6761961d21d9b84387471447e17827d1bb5a5d9bca34eba78839fb89f0ee1a5f26435b7395d112117ed1ea45e4d47ea88429d9d4d14cb37381ae078b38364defae7f1dbd92710ef701a3f722d70511f0fdfaa0e7fe3f11ac8c43a64e12b39f994bd0262afafebbe5fc46a2acf2cced5b921d9d3572813e056757841303b9c21a928e9ffe06abddcb6057f90f6b06f9724eaafc47bbe3ff44a6a1b723e026cbc1497a526fbca28a9f7067b9d01699029407b3bc9efd0d459a548ac5cd36489ff4069089b80c375143f531953495686aa1f83e74a356be10c3929e209d198d075b558f0d7b389a132a194335f152fe53d96d2e7d79914c776e59c0cd7177cdb25e200b90ba310b9b4020e9940f502cb940b09f891d97dd5038ee3eb1139c5051a84c888bb966e749e9d8d7d593caaf0e0a0535b2c04340083022a9c8bbb9c284faf87ded0964700758f5347082fed05a168220b6a2b033c7b313234c1c4eecd9010597fe9be99a42f0a98472389809018f9d39c87604dc0498f23d4b24dd916d6fe77ec7e7ead6211a3b626823acf5a221d7ac819c41b54ea5d089341630db54715f8b2926bbce5bef74cde58a234412202ef384989e7fffd1e9c82d02a619431dfc8ff826a0f16bf28705c6fc87619408fbbff1e95db571a7401c93108950a011117b39a166c853d268f7ca51516bfbdfcfc93c2e3d2de60a00a5a6fde39ddb9311ffafad0e7891cfee6cd5910618397a2e7097455c20b51b6a7661ac92a5696c6dd4449eb805cd90ee5146289551c558e4f3009587a1d5aaab856ff614a796ea3da86bfa010b9d2ee0348393722c087f9f6e0db5cdf0d76f97f2cd4dc3707d1a91c4c15c441290189e27c9f8c433a6943d026fe63b87fdddb07694cf7817fb7a3084e0c9800a699ff649b2df7a35cf8cc2d1a51410fad5ba6ad801074617752c1536fe7cbd0283b111fbfb4b053dcd44fe05250bf9bcbad31342eaf7430b30e34682fe85152057c8271949e0b61187c3cb28cb2ec3ef915306d8df51ec1588ff2d9e7b766fb372aa2ed528f40a5e68a7553688601d86eeaf8ad8d66d551f715d59ab02212b952cf93ac3c28c5bb1a30d406541a5502b66a5b5e59b666540387284252820bff10156ada9a07adc9b3ae76c7792e6ec672fae3f9af63ea11ea614f75aaa0b3114262ed7734ce0359b33402c16e9aa81</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">您好，这里需要密码。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/blog/lib/hbe.js"></script><link href="/blog/css/hbe.style.css" rel="stylesheet" type="text/css">
      </section>

      
      
        <nav class="article-nav">
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/03/29/SQL%E8%A7%A3%E6%9E%90%E5%B7%A5%E5%85%B7/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">SQL解析工具</h2>
        </a>
      
      <div class="card-text--row">Newer</div>
    </div>
  </article>
</div>
          
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2024/03/22/java%E5%9F%BA%E4%BA%8EPDF%E6%A8%A1%E6%9D%BF%E5%AF%BC%E5%87%BA/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">java基于PDF模板导出（itextpdf）</h2>
        </a>
      
      <div class="card-text--row">Older</div>
    </div>
  </article>
</div>
          
        </nav>
      

      <section class="page-message-container layout-padding">
        


  
  

  
  


      </section>
    </div>
    <div class="widget-info">
      <section class="widget-author widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-body">
    
      <img src="/blog/icon.gif" class="soft-size--round soft-style--box" alt="QAQ">
    
    
      <h2>QAQ</h2>
    
    
      <p>贵在坚持</p>
    

    <div class="count-box">
      <div class="count-box--item">
        <svg class="icon icon-article" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M240.51564747 647.74217627h196.07203239c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806V165.10332731c0-33.18142087-30.16492806-60.32985613-60.32985612-60.32985611H245.04038668C225.43318342 104.7734712 210.35071939 119.85593522 210.35071939 139.46313845V617.57724821c0 16.59071043 13.57421762 30.16492806 30.16492808 30.16492806z m663.62841731-452.47392089v482.63884894c0 33.18142087-27.14843525 60.32985613-60.32985612 60.32985613H180.18579134c-33.18142087 0-60.32985613-27.14843525-60.32985612-60.32985613V195.26825538c-49.77213131 0-90.49478418 40.72265287-90.49478417 90.49478417v452.4739209c0 49.77213131 40.72265287 90.49478418 90.49478417 90.49478417h286.56681657c16.59071043 0 30.16492806 13.57421762 30.16492807 30.16492807s13.57421762 30.16492806 30.16492805 30.16492806h90.49478418c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806s13.57421762-30.16492806 30.16492807-30.16492807h286.56681657c49.77213131 0 90.49478418-40.72265287 90.49478417-90.49478417V285.76303955c0-49.77213131-40.72265287-90.49478418-90.49478417-90.49478417zM587.41232014 647.74217627h191.54729318c19.60720323 0 34.68966726-15.08246403 34.68966729-34.68966727V134.93839925c0-16.59071043-13.57421762-30.16492806-30.16492808-30.16492805H617.57724821c-30.16492806 0-60.32985613 27.14843525-60.32985612 60.32985611v452.4739209c0 16.59071043 13.57421762 30.16492806 30.16492805 30.16492806z" fill="currentColor"></path>
</svg>
        <span>22</span>
      </div>
      <div class="count-box--item">
        <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
        0
      </div>
      <div class="count-box--item">
        <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
        8
      </div>
    </div>
  </div>
</section>

      

      
<section class="widet-notice widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-notice" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M512 945.02305225v28.15620663a24.27259221 24.27259221 0 0 1-24.27259221 24.27259335H394.0352a48.54518557 48.54518557 0 0 1-41.74885888-23.78714112l-110.68302222-184.47170332a132.04290333 132.04290333 0 0 1-17.47626667-48.54518557h118.4502511a200.97706667 200.97706667 0 0 1 76.21594113 14.56355556l20.38897777 133.49925888a48.54518557 48.54518557 0 0 0 36.40888888 27.67075555l16.01991111 2.91271112a24.27259221 24.27259221 0 0 1 20.38897778 25.72894889zM997.45185223 463.45481443a194.18074112 194.18074112 0 0 1-38.8361489 116.50844445 24.75804445 24.75804445 0 0 1-36.4088889 0l-34.95253333-34.95253333a24.27259221 24.27259221 0 0 1-2.91271111-30.58346667 97.09036999 97.09036999 0 0 0 0-106.79940665 24.27259221 24.27259221 0 0 1 2.91271111-30.58346666l34.95253333-34.95253334a24.75804445 24.75804445 0 0 1 18.93262223-7.28177777 26.2144 26.2144 0 0 1 17.47626667 9.70903665A194.18074112 194.18074112 0 0 1 997.45185223 463.45481443z m-194.18074112-388.36148111v776.72296335a48.54518557 48.54518557 0 0 1-48.54518556 48.54518443h-28.64165888a48.54518557 48.54518557 0 0 1-33.98163001-14.07810332l-145.63555556-143.20829668A291.27111111 291.27111111 0 0 0 342.57730333 657.63555556H172.18370333a145.63555556 145.63555556 0 0 1-145.63555556-145.63555556v-97.09036999a145.63555556 145.63555556 0 0 1 145.63555556-145.63555556h170.3936a291.27111111 291.27111111 0 0 0 206.31703779-85.43952668l145.63555555-143.20829554a48.54518557 48.54518557 0 0 1 33.98162888-14.07810446H754.72592555a48.54518557 48.54518557 0 0 1 48.54518556 48.54518555z" fill="currentColor"></path>
</svg>
    <span>NOTICE</span>
  </div>
  <div class="widget-body">
    <p>flex-block主题部分重构，详情查看https://github.com/miiiku/flex-block</p>
  </div>
</section>


      <section class="widget-categorys widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
    <span>CATEGORYS</span>
  </div>
  <div class="widget-body">
    <ul class="categorys-list">
      
    </ul>
  </div>
</section>

      <section class="widget-tags widget-item  layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
    <span>TAGS</span>
  </div>
  <div class="widget-body">
    <div class="tags-cloud">
      <a href="/blog/tags/Activiti/" style="font-size: 13.33px;" class="tags-cloud-3">Activiti</a> <a href="/blog/tags/Nginx/" style="font-size: 10px;" class="tags-cloud-0">Nginx</a> <a href="/blog/tags/PG%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 13.33px;" class="tags-cloud-3">PG数据库</a> <a href="/blog/tags/goView/" style="font-size: 13.33px;" class="tags-cloud-3">goView</a> <a href="/blog/tags/java/" style="font-size: 20px;" class="tags-cloud-10">java</a> <a href="/blog/tags/vue/" style="font-size: 16.67px;" class="tags-cloud-7">vue</a> <a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/" style="font-size: 16.67px;" class="tags-cloud-7">导出Excel</a> <a href="/blog/tags/%E6%8A%A5%E9%94%99/" style="font-size: 10px;" class="tags-cloud-0">报错</a>
    </div>
  </div>
</section>
    </div>
  </article>
</div>

    <!-- footer container -->
<footer id="footer" class="footer">
  <div class="footer-container">
    
    <div class="social-icons">
      
        
      
        
      
        
      
        
          <a href="https://github.com/miiiku/" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-github" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M64.6 512c0 195.6 125.4 361.9 300.1 422.9 23.5 5.9 19.9-10.8 19.9-22.2v-77.6c-135.8 15.9-141.3-74-150.5-89-18.5-31.5-61.9-39.5-49-54.5 31-15.9 62.5 4 98.9 58 26.4 39.1 77.9 32.5 104.1 26 5.7-23.5 17.9-44.5 34.7-60.9-140.7-25.2-199.4-111.1-199.4-213.3 0-49.5 16.4-95.1 48.4-131.8-20.4-60.6 1.9-112.4 4.9-120.1 58.2-5.2 118.5 41.6 123.3 45.3 33.1-8.9 70.8-13.7 112.9-13.7 42.4 0 80.3 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.4-43.9 2.9 7.7 24.7 58.3 5.5 118.1 32.5 36.8 49 82.8 49 132.4 0 102.3-59 188.3-200.2 213.2 23.5 23.3 38.1 55.5 38.1 91.1v112.7c0.8 9 0 17.9 15.1 17.9C832.7 877 960.4 709.4 960.4 512.1c0-247.5-200.6-447.9-447.9-447.9C265 64.1 64.6 264.5 64.6 512z"></path>
</svg>
          </a>
        
      
        
          <a href="https://twitter.com/guanquanhong" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-twitter" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M962.285714 233.142857q-38.285714 56-92.571429 95.428571 0.571429 8 0.571429 24 0 74.285714-21.714286 148.285714t-66 142-105.428571 120.285714-147.428571 83.428571-184.571429 31.142857q-154.857143 0-283.428571-82.857143 20 2.285714 44.571429 2.285714 128.571429 0 229.142857-78.857143-60-1.142857-107.428571-36.857143t-65.142857-91.142857q18.857143 2.857143 34.857143 2.857143 24.571429 0 48.571429-6.285714-64-13.142857-106-63.714286t-42-117.428571l0-2.285714q38.857143 21.714286 83.428571 23.428571-37.714286-25.142857-60-65.714286t-22.285714-88q0-50.285714 25.142857-93.142857 69.142857 85.142857 168.285714 136.285714t212.285714 56.857143q-4.571429-21.714286-4.571429-42.285714 0-76.571429 54-130.571429t130.571429-54q80 0 134.857143 58.285714 62.285714-12 117.142857-44.571429-21.142857 65.714286-81.142857 101.714286 53.142857-5.714286 106.285714-28.571429z"></path>
</svg>
          </a>
        
      
    </div>
     
    <p>&copy; 2024 <a href="/" target="_blank">QAQ</a></p>

    

    <p>Powered by <a href="https://hexo.io" target="_blank" rel="noopener noreferrer">Hexo</a> Theme - <a href="https://github.com/miiiku/flex-block" target="_blank" rel="noopener noreferrer author">flex-block</a></p>

    <p>
      <a href="javascript:;" id="theme-light">🌞 浅色</a>
      <a href="javascript:;" id="theme-dark">🌛 深色</a>
      <a href="javascript:;" id="theme-auto">🤖️ 自动</a>
    </p>
  </div>
</footer>
  </div>

  <div class="back-to-top-fixed soft-size--round soft-style--box">
    <svg class="icon icon-back-to-top" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <path d="M725.333333 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8l-213.333333-213.333333c-17.066667-17.066667-17.066667-42.666667 0-59.733333s42.666667-17.066667 59.733333 0l213.333333 213.333333c17.066667 17.066667 17.066667 42.666667 0 59.733333C746.666667 422.4 738.133333 426.666667 725.333333 426.666667z"></path>
      <path d="M298.666667 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8-17.066667-17.066667-17.066667-42.666667 0-59.733333l213.333333-213.333333c17.066667-17.066667 42.666667-17.066667 59.733333 0s17.066667 42.666667 0 59.733333l-213.333333 213.333333C320 422.4 311.466667 426.666667 298.666667 426.666667z"></path>
      <path d="M512 896c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 682.666667C554.666667 878.933333 537.6 896 512 896z"></path>
    </svg>
  </div>

  
  <!-- aplayer -->


<!-- dplayer -->


<!-- copy button  -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>

<!-- https://clipboardjs.com/ -->


<script type="text/javascript">
	(function () {
		function getCodeType (elem) {
			const classs = Array.from(elem.classList.values());
			if (classs && classs.length > 1) {
				return classs[1];
			}
			return "plain";
		}

		window.addEventListener("DOMContentLoaded", () => {
			const copyBtnClass = "copy-btn";
			//  instantiate clipboardjs 
			const clipboard = new ClipboardJS('.' + copyBtnClass);

			clipboard.on('success', function (e) {
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);
				if (e.trigger) {
					e.trigger.classList.add("copied");
					setTimeout(() => {
						e.trigger.classList.remove("copied");
					}, 3000);
				}
				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});

			document.querySelectorAll('figure.highlight').forEach((elem) => {
				const codeContent = elem.querySelector("td.code");
				const copyButton = document.createElement('button');
				copyButton.setAttribute("class", copyBtnClass);
				copyButton.setAttribute("title", "Copy Code");
				copyButton.setAttribute("data-clipboard-text", codeContent.innerText);
				elem.insertBefore(copyButton, elem.children[0]);
			});
		})
	})();
</script>








  


  


  




<script src="/blog/js/script.js"></script>


  
  <!-- 尾部用户自定义相关内容 -->
</body>
</html>
